Method and system for automatically generating invoices for contracts

ABSTRACT

Techniques to automatically generate invoices for contracts, each of which may include any number of line items. Each contract line item may be associated with (1) a particular invoice plan that defines one or more applicable billing types (e.g., for non-recurring, recurring, and use charges) and any adjustments to the total billed amount, (2) a particular invoicing schedule that defines the timing for the invoice generation, (3) a particular account to which invoices are addressed, and (4) a flag to selectively enable automatic invoice generation. An invoice engine automatically generates invoices for a set of one or more contracts by processing each enabled line item of each contract based on the associated invoice plan and invoicing schedule to generate a set of one or more invoice line items for the contract line item. All invoice line items for each account are aggregated into an invoice for the account.

BACKGROUND OF THE INVENTION

The present invention relates generally to computer processing, and moreparticularly to techniques to automatically generate invoices forcontracts.

Contract management is a ubiquitous challenge faced by many industriesand organizations. In many industries, complex products and/or servicesmay be offered, and these offerings may be associated with complexpricing structures, entitlements, billing and service deliveryrequirements, and so on. Contracts of varying degrees of complexity andscope may then be created and used for these offerings. These contractsdefine the relationship between contracting parties in relation to theofferings for specific time periods.

In general, a contract may be drafted to include any number of terms andeach term may be drafted to cover any matter of importance betweencontracting parties. For example, a contract may define certain pricingstructure, cover certain services, offer certain preventive maintenance,and so on. For each of these terms, different coverage may be negotiateddepending on various factors such as, for example, the parties to thecontract, the price paid, and so on. Contracts may thus be viewed ascomprising various types of unstructured information.

In many instances, executed contracts (i.e., agreements) need to beserviced to enforce the terms of the contracts. For example, forcontracts with installment payment plans (e.g., lease contracts) orrecurring charges (e.g., rental contracts), periodic payments need to bedetermined for the contracts and invoiced accordingly. For a medium orlarge organization, a large number of contracts may need servicing, thecontracts may be of varying degrees of complexity and scope, andnumerous payment plans may be called out by the contracts.

The task of generating invoices for contracts in a manner to meet theneeds and requirements of an organization can be challenging. Thechallenge often magnifies as the complexity and/or the number ofcontracts to be serviced increases. Thus, techniques that can be used toefficiently service (invoice) contracts are highly desirable.

SUMMARY OF THE INVENTION

The invention provides techniques to automatically generate invoices forcontracts. In one aspect, invoices may be automatically generated forany designated set of one or more contracts, with each contractincluding any number of line items. Each contract line item typicallycovers either a specific product or a specific asset, which is aspecific instance of a particular product.

In an embodiment, each contract line item may be associated with (1) aparticular invoice plan that defines one or more types of billings(e.g., for non-recurring charge (NRC), recurring charge (RC), and usecharge) applicable to the contract line item and (2) any adjustments tothe total billed amount for the contract line item. The invoice plan foreach contract line item may be selected from among a number ofpredefined invoice plans, or may be a custom invoice plan definedspecially for the contract line item. If multiple line items areincluded in a contract, these contract line items may be associated withthe same or different invoice plans. Each contract line item is furtherassociated with a particular invoicing schedule that defines the timingfor the generation of invoices (i.e., when invoices are to be generatedfor the contract line item and for how long). Each contract line itemmay also be associated with a particular account to which invoices areaddressed. The different line items in each contract may be associatedwith the same or different accounts.

In an embodiment, the automatic invoice generation may be selectivelyenabled for each contract line item via an “Auto Invoice” flag. Thisflag may be set (or checked, e.g., by default) to enable automaticgeneration of invoices for the contract line item, and may be reset (orunchecked, e.g., manually) to disable the feature.

An invoice engine may be executed to automatically generate invoices fora designated set of one or more contracts. In an embodiment, the invoiceengine processes each enabled (or set) line item of each contract andgenerates a set of one or more invoice line items for each enabledcontract line item based on its invoice plan and invoicing schedule.Each invoice line item covers a particular billing type (e.g.,non-recurring charge, recurring charge, or use charge) or othercredits/charges for the contract line item. The invoice engine thengenerates an invoice for each “active” account (having at least oneinvoice line item) by aggregating all invoice line items addressed tothe account.

Any number of line items in any number of contracts may thus beautomatically invoiced to generate any number invoices, each of whichmay include any number of invoice line items. The automatic and flexiblegeneration of invoice line items from contract line items can greatlysimplify the management of contracts. The invoice engine may be executedcontinually, periodically, or at designated or scheduled times togenerate invoices as billings become due. The invoice engine may also beexecuted interactively to generate invoices at specific times (e.g., asdetermined by an administrator or an end-user). Various details of theautomatic invoice generation are described below.

The invention further provides other methods, computer program products,systems, and user interface menus, capable of implementing variousaspects, embodiments, and features of the invention, as described infurther detail below.

The foregoing, together with other aspects of this invention, willbecome more apparent when referring to the following specification,claims, and accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating a specific embodiment of a contractmanagement system;

FIG. 2 is a diagram illustrating the automatic generation of invoices,in accordance with an embodiment of the invention;

FIG. 3 shows an embodiment of a screen that may be used by anadministrator or an end-user to view and edit agreements for executedcontracts;

FIG. 4A shows an embodiment of a screen that may be used to view andedit a specific agreement;

FIG. 4B shows an embodiment of a screen that may be used to view andedit invoice plan information for a selected agreement line item;

FIG. 5 is a flow diagram of an embodiment of a process to automaticallygenerate invoices;

FIGS. 6A and 6B show an embodiment of screens that may be used to viewand edit non-recurring charge (NRC) plans;

FIGS. 7A and 7B show an embodiment of screens that may be used to viewand edit Use plans;

FIG. 8 shows an embodiment of a screen that may be used to displayinvoices for an agreement and to enable an end-user to interactivelygenerate an invoice for one or more selected agreement line items; and

FIG. 9 is a block diagram of a computer system that may be used toimplement the host server and client computers in FIG. 1.

DESCRIPTION OF THE SPECIFIC EMBODIMENTS

FIG. 1 is a diagram illustrating a contract management system 100, inaccordance with a specific embodiment of the invention. In thisembodiment, contract management system 100 is implemented on a set ofone or more host servers 110 that couple to and interact with one ormore client computers 130 via direct connection, a computer network(e.g., the Internet), and/or some other means. Host server(s) 110further couple to a database server 120 that stores data (typically in a“raw” form) used by the contract management system.

In an embodiment, contract management system 100 includes a number ofmodules such as a user interface module 112 and a contract manager 114.Additional, fewer, and/or different modules may also be included incontract management system 100, and this is within the scope of theinvention. User interface module 112 provides the interface (e.g.,screens) used to present information to an administrator and/or anend-user of the contract management system. User interface module 112further receives and interprets user commands and data, which may beprovided via mouse clicks, mouse movements, keyboard inputs, and othermeans. User interface module 112 then provides the received data andcommands to other modules, which then perform the appropriate responsiveaction.

Contract manager 114 facilitates the creation and management ofcontracts. Contract manager 114 provides the necessary screens, tools,templates, and data to support the creation of contracts, as describedin U.S. patent application Ser. No. [Attorney Docket No. 125-8],entitled “Method and System for Instantiating Entitlements intoContracts” filed Sep. 28, 2001, assigned to the assignee of the presentapplication and incorporated herein by reference. Contract manager 114further includes an invoicing engine 115 that “services” executedcontracts (i.e., agreements), e.g., by automatically generating invoicesfor these contracts, as described in further detail below.

The modules within contract management system 100 may operate on andshare the data stored in a central database 126. Typically, raw datafrom database 126 is retrieved by a module within contract managementsystem 100 and processed into a form more suitable for that module. Theprocessed data is then stored to a local storage 116 to allow for fastand efficient access to the data. In an embodiment, agreements and plansused to generate invoices may be stored in local storage 116. Localstorage 116 may be implemented with a semiconductor memory (e.g., RAM,Flash), a hard disk, or some other data storage technology that canprovide fast access to the data stored thereon.

In an embodiment, database server 120 manages the central database forcontract management system 100 and includes an object manager 122, adata manager 124, and database 126. Object manager 122 manages theinteraction with the database and, in an embodiment, includes businessobjects (BO), business services (BS), and business components (BC) (notshown in FIG. 1 for simplicity). The business objects model majorentities (e.g., contracts, templates, and so on) in the contractmanagement system with associated business rules. Each business objectis made up of a hierarchy of parent-child components, which modelrelationship with appropriate specialized operations. The businessservices are the basic components for building complex behavior. Newbusiness services may be created and linked into multi-step controlflows to provide complex behavior encompassing multiple businessobjects. The business components provide real time access to remoteobjects without replication of data within database 126. A businessobject may be made up of a number of business components managed by thecontract management system.

Data manager 124 manages database 126 and performs this function byinvoking SQL objects. Database 126 stores data for the contractmanagement system, and possibly for other systems that may be combinedwith the contract management system to provide the overall system.

Contract management system 100 provides screens and tools to organizeand display agreements (i.e., executed contracts) and to efficientlymanage agreements. Contract management system 100 may be used fornumerous industries and organizations. As an example, contractmanagement system 100 may be used for any organizations that provideservices, offer rentals, sell products, provide leasing or financing,manage resources, and so on.

As used herein, a contract is a document that defines the businessrelationship between two parties. A contract may be complex andtypically describes the obligations to perform, provide, sell, offer, orproduce specific activities, responsibilities, products, or servicesover a determined period of time for a specific amount of money. Acontract may cover sales of goods, services, or a combination of both. Acontract typically includes detailed descriptions of pricing, terms,limitations, coverage, conditions, legal rights, extension clauses, andother guidelines. A contract can thus include various types ofunstructured information. As used herein, an agreement is an executedcontract, and the term “contract” may generically refer to either anexecuted contract (i.e., an agreement) or an unexecuted contract.

The invention provides various techniques to facilitate the managementof contracts and to automatically generate invoices (e.g., periodically,as scheduled, or when directed) for these contracts. The automaticgeneration of invoices supports complex pricing structures, which mayincrease revenue and profitability for an organization while at the sametime reduce operational costs.

FIG. 2 is a diagram illustrating the automatic generation of invoices,in accordance with an embodiment of the invention. In an aspect,invoices may be automatically generated for any designated set of one ormore executed contracts (i.e., agreements) 210. Each agreement 210 mayinclude any number of line items 220. Each agreement line item 220 (orcontract line item) typically covers a specific product, asset, service,or some other item, or any combination thereof. As used herein, aproduct may be defined as any tangible or intangible item such as, forexample, a good, a resource, a service, a class, training, and so on,and an asset is a specific instance of a particular product.

In an embodiment, each agreement line item 220 may be associated with(1) a particular invoice plan that defines various types of billings(e.g., for non-recurring charge (NRC), recurring charge (RC), and usecharge) applicable to the agreement line item and (2) any adjustments tothe total billed amount for the agreement line item. The invoice planfor each agreement line item may be selected from among a number ofpredefined invoice plans, or may be a custom invoice plan definedspecially for the agreement line item. If multiple line items areincluded in an agreement, these agreement line items may be associatedwith the same or different invoice plans. Each agreement line item isfurther associated with a particular invoicing schedule that defines thetiming for the generation of invoices (i.e., when invoices are to begenerated for the agreement line item and for how long).

Each agreement line item 220 may also be associated with a particularaccount to which invoices for the agreement line item are addressed. Thedifferent line items in each agreement may be associated with the sameor different accounts.

In an embodiment, the automatic invoice generation may be selectivelyenabled for each agreement line item 220 via an “Auto Invoice” flag 222.This flag 222 may be set (or checked, e.g., by default) to enableautomatic generation of invoices for the agreement line item, and may bereset (or unchecked, e.g., manually) to disable the feature.

Invoice engine 115 may be executed to automatically generate invoicesfor the designated set of one or more agreements 210. Invoice engine 115would then process each enabled (or set) line item of each agreement,and generate a set 250 of one or more invoice line items for eachenabled agreement line item based on its associated invoice plan andinvoicing schedule. In an embodiment, each invoice line item covers aparticular billing type (e.g., non-recurring charge, recurring charge,or use charge) or other credits/charges for the agreement line item.Invoice engine 115 would ignore each agreement line item for which AutoInvoice flag 222 is not set. Invoice engine 115 then generates aninvoice 240 for each “active” account (with at least one invoice lineitem) by aggregating all invoice line items addressed to the account.

As shown in FIG. 2, any number of line items in any number of agreementsmay be automatically invoiced to generate any number invoices, each ofwhich may include any number of invoice line items. The automatic andflexible generation of invoice line items from agreement line items cangreatly simplify the management of agreements. The invoice engine may beexecuted continually, periodically, at designated or scheduled times, orin a batch mode to generate invoices as billings become due. The invoiceengine may also be executed interactively or via a repeat-request modeto generate invoices at specific times determined by an administrator oran end-user. Various details of the automatic invoice generation aredescribed below.

As noted above, each agreement line item is associated with a particularinvoice plan that defines (1) one or more billing types applicable tothe agreement line item and any adjustments to the total billed amount,and (2) a plan and/or schedule for each applicable billing type. Table 1lists various billing types that may be applied to each agreement lineitem. Fewer, additional, and/or different billing types may also besupported by the system and are within the scope of the invention. Thebilling types and plans/schedules are described in further detail below.TABLE 1 Billing Types/Adjustments Description Non-Recurring Charge (NRC)a one-time fee for an agreement line item Recurring Charge (RC) anon-going fee for an agreement line item Use Charge a fee based on actualusage of a specified asset Milestones fees based on the completion ofagreement deliverables Adjustments adjustments to the fees

A non-recurring charge may be defined for each agreement line item. Thetotal amount of non-recurring charge and the start date of NRCbilling(s) are typically defined. If multiple NRC payments are to bemade, then a particular NRC plan and a particular NRC schedule may beselected for the agreement line item. The NRC plan defines thecomputation to obtain the amount for each NRC billing, and may beselected from among a number of defined NRC plans. The NRC scheduledefines the timing for the NRC billings. Various parameters used todefine non-recurring charge are described in further detail below.

A recurring charge may also be defined for each agreement line item. Theamount of recurring charge for each RC billing period, the RC billingperiod, and the start date of the RC billings are typically defined.Adjustments may also be made to the RC billings, e.g., to prorate an RCbilling for an invoicing period that is shorter than a complete RCbilling period. Various parameters used to define recurring charge aredescribed in further detail below.

A Use charge may also be defined for each agreement line item and may beused to support certain types of agreement such as rental, lease, andusage-based pricing agreements. A number of Use plans may be defined,and a particular Use plan may be selected or specially defined for anagreement line item. Each Use plan defines a particular scheme forcomputing the Use charge billings. Various parameters for defining Usecharge are described in further detail below.

Adjustment may be made to the total billed amount for each agreementline item (in addition to the adjustment for the RC billings). Theadjustment may be computed based on a particular adjustment scheme, asdescribed below.

As noted above, each agreement line item is further associated with aparticular invoicing schedule that defines when invoices are to begenerated for the agreement line item. The invoicing schedule determineswhen invoices are to be generated for the agreement line item, and maybe different from the schedules for the NRC, RC, and Use charge, whichaffect the billed amounts, as described below. In an embodiment, theinvoicing schedule defines (1) a start date and an end date thatrespectively mark the start and the end of an invoicing time windowduring which invoices may be generated for the agreement line item, (2)a schedule to be used for generating invoices for the agreement lineitem, (3) a specific date (e.g., the first day, last day, or n^(th) dayof each month) within each invoicing period on which invoices are to begenerated, and (4) a “basis” to be used for generating the invoices. Theschedule for generating invoices may be periodic (e.g., weekly, monthly,quarterly, bi-annually, annually, and so on) or non-periodic (e.g., ondesignated dates or whenever invoked). The basis may indicate thatinvoices are to be generated covering only the current invoicing period,or for the current invoicing period plus a future time period designatedby an end-user via an “Advance To” field.

The techniques of the invention may be implemented in various mannersand using various user interfaces (e.g., screens). For clarity, aspecific implementation of various aspects and embodiments of theinvention is described below.

FIG. 3 shows a screen 300 that may be used by an administrator or anend-user to view and edit agreements, in accordance with a specificembodiment of the invention. Screen 300 includes main menu tabs 312 thatmay be used to invoke various modules, functionality, and featuresprovided by an overall system. In such a design, the contract managementsystem may represent just one of many individual systems included in theoverall system. Upon selection of a particular menu tab (e.g.,“Agreements”), a list box 314 is provided to allow an administrator oran end-user to select one of a number of possible choices supported bythe selected system. In the example shown, the “My Agreements” choice isselected in list box 314.

Screen 300 includes an Agreements list applet 320 that is displayed inresponse to the selection of the “My Agreements” choice in list box 314.Agreements list applet 320 includes a list table that displays aparticular set of agreements, which may be selected via a set of one ormore criteria. For example, the agreements displayed in the list tablemay include agreements managed by a particular end-user, agreements fora particular account, agreements for a particular product, and so on.The list table includes a number of data rows, with each data rowcorresponding to a record for one agreement. A particular agreement inthe list table may be selected by highlighting (e.g., clicking on) thecorresponding data row. The selected agreement may then be displayedwith a different color for the list table for ease of viewing.

Screen 300 also includes an Agreement form applet 350 that displaysinformation for the specific agreement selected in Agreements listapplet 320. Agreement form applet 350 includes main tabs 352 that may beinvoked to obtain various “views” of the selected agreement, with eachview providing a different set of information (e.g., a different set ofapplets) for the selected agreement. In FIG. 3, Agreement form applet350 shows general information for the selected agreement.

FIG. 4A shows an embodiment of a screen 400 that may be used to view andedit a specific agreement, which may be selected from among those shownin Agreements list applet 320 in FIG. 3. Screen 400 includes anAgreement form applet 420 that displays information for the selectedagreement. Screen 400 also includes a Line Items list applet 460 used todisplay information for the line items in the selected agreement and toenable an end-user to interactively edit the agreement line items. LineItems list applet 460 may be invoked by selecting a “Line Items” choicein a list box 454. Other applets may be displayed by selecting otherchoices in list box 454, as described below.

Line Items list applet 460 includes a set of buttons 462 used to invokevarious functions applicable for the agreement line items. A “New”button may be invoked to add a new line item for the selected agreement.An “Entitle” button may be invoked to instantiate entitlements for allline items and sub-line items listed in Line Items list applet 460.Entitlement instantiation is described in further detail in theaforementioned U.S. patent application Ser. No. [Attorney Docket No.125-8]. A “Service” button may be invoked to bring up a Service Productpop-up applet that displays a list of possible service products for aselected agreement line item. Upon selecting a particular serviceproduct from the list, the fields of the selected agreement line itemare automatically filled with the information for the selected serviceproduct. A “Reprice” button may be used to determine the pricing for theselected agreement line item based on a defined price list and itsrelated pricing model. A “Reprice All” button may be used to determinethe pricing for all agreement line items based on the defined pricelists and their related pricing models. The Reprice and Reprice Allbuttons may be advantageously used, for example, to provide quotes foragreements.

Line Items list applet 460 displays all line items for the selectedagreement using a list table. Each data row in the list tablecorresponds to a record for one agreement line item. The list tableincludes columns for a number of fields of the agreement line items.Table 2 lists various fields that may be defined for agreement lineitems and the corresponding descriptions. Fewer, additional, and/ordifferent fields may also be defined and are within the scope of theinvention. TABLE 2 Field Description Line # the number assigned to theagreement line item, which may be renumbered by invoking a “Renumber”button Product the product covered by the agreement line item Part # thepart/item number of the given product Qty the quantity covered by theagreement line item Asset # the specific asset covered by the agreementline item; this asset may be an instantiation of a different productthan the one identified in the Product field (e.g., agreement line itemcovers product “X” but asset is product “Y”) Serial # a number relatedto or identical to the asset number, which is typically used for assetidentification Asset text description of the covered asset, which mayDescription be automatically generated based on the Asset # ExtendedPrice the unit price for the product or asset covered by the agreementline item; may be pre-paid, partially paid, or fully amortized over aparticular time period Non-Recurring a one-time fee for the line itemCharge (NRC) Recurring an ongoing fee for the line item Charge (RC) UsePlan a Use plan may be selected that is valid for either the product orthe asset in the agreement line item Usage Asset # the asset to be usedfor calculating the Use fee Account the account to which invoices forthe agreement line item is addressed; default is a “Bill To” account forthe agreement Status the current status of the agreement line itemCanceled effective date/time of cancellation; no invoices are generatedafter this date Cancel Reason text describing the reason for thecancellation Start Date start date for entitlements createdautomatically for the agreement line item End Date end date forentitlements for the agreement line item Edit a button that may beinvoked to go to a Line Item Edit form appletNot all fields in Table 2 are shown in FIG. 4A. Horizontal cursors maybe provided above the list table to allow for scrolling across the listtable to display other fields.

Screen 400 also includes a Totals form applet 470 that may be used todisplay pricing information for one or more selected agreement lineitems. Price adjustments and comments may also be entered in Totals formapplet 470.

FIG. 4B shows an embodiment of a screen 402 that may be used to view andedit invoice plan information for a selected agreement line item. Screen402 includes Agreement applet 420, Line Item list applet 460, and anInvoice Plan form applet 480. Invoice Plan form applet 480 may beinvoked by selecting an “Invoice Plan” choice in list box 454. Formapplet 480 may be used to provide information for certain fields for theselected agreement line item in a more intelligible manner than with thelist table in Line Items list applet 460. Access to invoice planinformation may be controlled by granting limited access rights toInvoice Plan form applet 480 (e.g., to an administrator but not toend-users).

In the embodiment shown in FIG. 4B, Line Item list applet 460 includesan “Invoice” button, an “Invoice All” button, and an “Advance To” databox, which are displayed for the “Invoice Plan” selection in list box454. The Invoice button may be invoked to generate an invoice for theselected agreement line item. The Invoice All button may be invoked togenerate an invoice for all agreement line items of the selectedagreement. The Advance To data box may be used to enter an advanceddate, in which case invoices may be generated to cover up to theadvanced date.

Invoice Plan form applet 480 includes various fields used to define aspecific invoice plan for the selected agreement line item. Table 3shows various fields that may be included in Invoice Plan form applet480 and the corresponding descriptions. Fewer, additional, and/ordifferent fields may also be provided and are within the scope of theinvention. TABLE 3 Field Description Invoice Start start date of theinvoice plan Invoice End end date of the invoice plan Invoice timeperiod when invoices are to be generated Schedule (e.g., monthly), whichis also referred to as the invoicing period Invoice specific day/date ineach invoicing period when Timing invoices are to be generated (e.g.,1st or last of each month) Invoice Type the invoice type, which may berent, lease, finance, purchase, service, fee-per-use, or trade-inInvoice the default status for generated invoices, which Status may beactive, quoted, cancelled, pending, current, and so on Invoice Schedule= generate invoice for the current Basis invoicing period Advance =generate invoice for the current invoicing period plus a future timeperiod designated by the date in the “Advance To” field Last Invoiceddate/time of the last invoice generated for the agreement line item;this date is used to determine the RC and Use charge billed amounts;default is RC/Use Start Advance To future date/time that invoices willbe generated up until Use Start start date for Use charge billings;cannot be earlier than Invoice Start date or later than Invoice Enddate; default is Invoice Start date Use Plan a specific plan fordetermining Use charge billed amounts; Use plans may be defined via aService Admin screen described below Non-Recurring total NRC amount duefor the agreement line item NRC Start start date for NRC billings;cannot be earlier than Invoice Start date or later than Invoice Enddate; default is Invoice Start date NRC Schedule a schedule defining thefrequency of NRC billings; can be different than the Invoice Scheduleand the RC Schedule NRC Plan a specific plan for determining NRC billedamounts; default is total NRC amount divided equally by NRC Qty if noNRC plan is specified;NRC plans may be defined via a Service Adminscreendescribed below NRC Qty number of NRC billings Recurring RC billedamount for each RC billing period; an agreement line item may beinvoiced even though the Recurring field is blank RC Start start datefor RC billings; cannot be earlier than Invoice Start date or later thanInvoice End date; default is Invoice Start date RC Schedule a scheduledefining the frequency of RC billings; can be different than the InvoiceSchedule and the NRC Schedule RC Adjust adjustments to be made incomputing the RC amount owed; adjustments may be made to prorate for ashortened RC billing period RC Adjust U/M specifies the level ofgranularity for billing any fractions of time (e.g., hour, day, week,month) for RC billings Adjust manual adjustment; entered (positive ornegative) Invoice amount is swept into the next invoice; field iscleared after each use Adjust Reason text describing reason foradjustment; field is cleared after use Cancel effective date/time ofcancellation of the agreement line item Cancel Reason text describingthe reason for the cancellation Auto-Invoice flag to enable automaticgeneration of invoices for the agreement line item (default = set)

FIG. 5 is a flow diagram of a process 500 to automatically generateinvoices, in accordance with an embodiment of the invention. Initially,a set of one or more (K) agreements is identified for processing andretrieved, at step 512. These agreements may be selected based on anyset of one or more criteria (e.g., all agreements, agreements for aparticular account, agreements for a particular product, and so on). Theselected agreements are then processed, one agreement at a time byinitially setting k=1 at step 514.

At step 522, the current status of agreement k is determined. This mayinclude, for example, checking whether or not the agreement is Valid andwhether or not the status of the agreement is Open. If the agreement isboth Valid and Open, then the line items in the agreement are processed,one line item at a time by initially setting n=1 at step 524.

At step 532, a determination is made whether or not agreement lineitem(n) is to be invoiced. In an embodiment, an agreement line item maybe automatically invoiced if it is billable, not canceled, and furtherenabled for auto invoicing by setting the Auto Invoice flag. If anagreement line item is canceled on a given date/time, then the line itemmay be invoiced up to the date/time of cancellation (e.g., the RC billedamount may be prorated). Different and/or additional criteria may alsobe used to determine whether or not an agreement line item is to beautomatically invoiced.

If the agreement line item is to be invoiced, then a determination isnext made whether or not an invoice has already been created for theaccount to which the current agreement line item is addressed, at step542. If an invoice for this account has not been created for the currentinvoicing period, then a new invoice is created for this account withthe proper invoice header, at step 544. Otherwise, the invoice alreadycreated for the account for the current invoicing period is retrieved,at step 546.

A determination is then made whether or not non-recurring charge is tobe invoiced for the agreement line item, at step 552. This determinationmay be made, for example, by obtaining the total NRC amount to beinvoiced (from the Non-Recurring field) and determining whether or notthis amount is greater than zero. If NRC is not to be invoiced (e.g.,the total NRC amount is zero, or all NRC billings have already beeninvoiced), then the process proceeds to step 562. Otherwise,non-recurring charge is invoiced for the agreement line item, at step554. This may be achieved by retrieving the NRC plan for the agreementline item and calculating the NRC billed amount for the current invoice.A line item is then generated in the invoice for the non-recurringcharge. The process then proceeds to step 562.

At step 562, a determination is made whether or not recurring charge isto be invoiced for the agreement line item. This determination may bemade, for example, by checking the value for the Recurring field in theagreement line item. If RC is not to be invoiced (e.g., the Recurringfield is zero, or if no RC billing is due for the current invoicingperiod), then the process proceeds to step 572. Otherwise, recurringcharge is invoiced for the agreement line item, at step 564. This may beachieved by determining the RC billed amount for the current invoice(e.g., from the Recurring field). The RC billed amount may then beadjusted based on any adjustment specified for the agreement line item(e.g., in the RC Adjust and RC Adjust U/M fields). A line item is thengenerated in the invoice for the recurring charge. The process thenproceeds to step 572.

At step 572, a determination is made whether or not Use charge is to beinvoiced for the agreement line item. This determination may be made,for example, by checking whether or not a Use plan has been specifiedfor the Use Plan field in the agreement line item. If Use charge is notto be invoiced (e.g., no Use plan specified, or if no Use charge billingis due for the current invoicing period), then the process proceeds tostep 582. Otherwise, Use charge is invoiced for the agreement line item,at step 574. This may be achieved by retrieving the Use plan for theagreement line item, retrieving measurements for each asset covered bythe specified Use plan, and calculating the Use charge billed amount forthe current invoice based on the Use plan and the asset measurements. Aline item is then generated in the invoice for the Use charge. Theprocess then proceeds to step 582.

At step 582, a determination is made whether or not credits and/or othercharges are to be invoiced for the agreement line item. Thisdetermination may be made as described below (e.g., by checking the“Adjust Invoice” field). If credits/charges are not to be invoiced, thenthe process proceeds to step 536. Otherwise, credits/charges areinvoiced for the agreement line item, at step 584. A line item is thengenerated in the invoice for the credits/charges. The process thenproceeds to step 536.

At step 536, the next agreement line item is processed by incrementingn. If any line item is still left to be processed (i.e., n≦N_(k)) forthe current agreement k, as determined in step 538, then the nextagreement line item is processed by returning to step 532. Otherwise, ifall line items for agreement k have been processed, of if agreement k isnot to be processed (e.g., not billable or is canceled) as determined instep 522, then the next agreement is considered for processing byincrementing k, at step 526. If any agreement is still left to beprocessed (i.e., k≦K), as determined in step 528, then the nextagreement is processed by returning to step 522. Otherwise, if allagreements have been processed, then process 500 terminates.

As shown in FIG. 5, the invoice engine considers the information foreach agreement in the set and, if appropriate, the information for eachline item in the agreement to automatically generate invoices. For eachagreement line item, the invoice engine may generate up to four invoiceline items for NRC, RC, Use charge, and credits/charges, depending onthe structure of the agreement. Each of these four different types ofcharge is described in further detail below.

The NRC billed amount for a particular agreement line item may becalculated based on an NRC plan selected for that line item. Various NRCplans may be defined by an administrator, and a particular NRC plan maybe selected or specially defined for an agreement line item.

FIG. 6A shows an embodiment of a screen 600 that may be used to view andedit NRC plans. Screen 600 shows an NRC Plans list applet 620 thatdisplays previously defined NRC plans in a list table. Each data row inthe list table corresponds to a record for one NRC plan. In theembodiment shown, the list table includes columns for the followingfields: the name of the NRC plan (“Name”), the NRC plan type (“Type”),the status of the NRC plan (“Active”), the schedule for NRC billings(“Schedule”), a flag to turn the NRC plan into read-only (“Commit”), anda description of the NRC plan (“Description”). A particular NRC plan maybe selected for editing or deletion, or a new NRC plan may be created byinvoking the proper button in button set 622. Screen 600 furtherincludes an NRC Plan form applet 650 that may be used to edit anexisting NRC plan or to enter information for a new NRC plan.

FIG. 6B shows an embodiment of a screen 602 that may be used to view andedit a particular NRC plan, which may be selected from among the NRCplans displayed in NRC Plans list applet 620 in FIG. 6A. Screen 602includes NRC Plan form applet 650 and an NRC Plan Details list applet660 that displays the details of the selected NRC plan and allows anadministrator to define the plan.

In the embodiment shown, NRC Plan Details list applet 660 displays theselected NRC plan using a list table that includes a number of records,one record for each billing called out by the NRC plan. The list tablefurther includes columns for the following fields: a record number(“Number”), a percentage of the total NRC amount that is due for thecurrent NRC billing (“NRC %”), an additional percentage of the total NRCamount that is due for the current NRC billing, which may be used toaccount for finance charges and so on (“Additional %”), an additionalcharge amount for the current NRC billing (“Additional Charge”), adescription for the charge (“Charge Description”), and comments(“Comments”). One last record may be displayed in NRC Plan Details listapplet 660 (not shown in FIG. 6B) to include the total of all records(i.e., each column in the last record, if appropriate, would include thesummation of the values in the same column for all other records).

The RC billed amount for an agreement line item is determined by thevalue in the Recurring field. The timing of the RC billings is based ona schedule in the RC Schedule field. If the RC schedule is not the sameas the Invoice schedule, or if the current invoicing period only coversa portion of the RC billing period, then the RC billing may be proratedfor the current invoicing period. The values in the RC Adjust and RCAdjust U/M fields determine the manner in which the RC billing isprorated. RC billings may also be used for fees, renewals, and so on. RCbillings may also be generated based on RC plans.

A Use plan may be selected for an agreement line item and used tocalculate a Use charge billed amount for the agreement line item basedon usage of one or more assets specified by the Use plan. Various Useplans may be defined by an administrator, and a particular Use plan maybe selected or specially defined for an agreement line item.

FIG. 7A shows an embodiment of a screen 700 that may be used to view andedit Use plans. Screen 700 shows a Use Plans list applet 720 thatdisplays previously defined Use plans using a list table. Each data rowin the list table corresponds to a record for one Use plan. In theembodiment shown, the list table includes columns for the followingfields: the name of the Use plan (“Name”), a description of the Use plan(“Description”), a flag to indicate the status of the Use plan(“Active”), and a flag to indicate whether or not usage may be estimatedfor all or a portion of the current invoicing period if measurementreadings are not available (“Estimated”). A particular Use plan may beselected for editing or deletion, or a new Use plan may be created byinvoking the proper button in a button set 722. Screen 700 furtherincludes a Use Plan form applet 750 that may be used to edit an existingUse plan or to enter information for a new Use plan.

FIG. 7B shows an embodiment of a screen 702 that may be used to view andedit a particular Use plan, which may be selected from among the Useplans displayed in Use Plans list applet 720 in FIG. 7A. Screen 702includes Use Plan form applet 750 and a Use Plan Details list applet 760that displays the details of the selected Use plan and allows anadministrator to define the Use plan. In the embodiment shown, theselected Use plan is described using a list table. Each data row in thelist table corresponds to a record for one product that is covered by,and may utilize, the Use plan. Any number of products may thus becovered by a particular Use plan. The list table further includescolumns for the following fields: the product covered by the Use plan(“Product”), the number of the covered product (“Part #“), a descriptionfield for the covered product (“Description”), and a flag to turn theUse plan into read-only (“Commit”).

Screen 700 further shows a Pricing list applet 770 that displays Usepricing details for a particular product in the selected Use plan.Pricing list applet 770 allows an administrator to enter information forthe Use pricing. Each product covered by the Use plan may be associatedwith a respective Use pricing used to determine the Use charge billedamount for an asset of that product type. Use pricing is typicallydefined for each product covered by the Use plan, and different Usepricing may be defined for different products covered by the Use plan.

Various Use pricing schemes are also supported, and each product may beassociated with a particular Use pricing scheme. In the embodimentshown, the Use pricing for a selected product is described using a listtable that includes one or more records, one record for each measurementrange.

In one scheme, the Use pricing is “tiered” such that different amountsmay be charged for different incremental quantities. As an example for acopier, the first 1000 copies may be charged at $0.03/copy, the next1500 copies may be charged at $0.025/copy, the next 5000 copies may becharged at $0.022/copy, and anything over 5000 copies may be charged at$0.02/copy. The charge for 2400 copies would then be calculated as$65.00 (i.e., the first 1000 copies at $0.03/copy=$30.00, and the next1400 copies at $0.025/copy=$35.00).

In another scheme, the Use pricing is “aggregated” such that differentamounts may be charged for different quantity levels. As an example forthe copier, total copies/month of less than 1000 may be charged at$0.03/copy, total copies/month of at least 1000 but less than 2000 maybe charged at $0.026/copy, total copies/month of at least 2000 but lessthan 5000 may be charged at $0.023/copy, and total copies/month of atleast 5000 may be charged at $0.02/copy. The charge for 2400 copieswould then be calculated as $55.20 (i.e., 2400 copies at $0.023/copy).

In yet another scheme, the Use pricing may be tiered and aggregated. Asan example for the copier, a flat RC rate of $100/month may be chargedfor up to 1000 copies, the next 1000 copies may be charged at$0.02/copy, the next 3000 copies may be charged at $0.01/copy, and eachcopy over 1000 may be charged at $0.01/copy if the total copies/month isgreater than 5000. The charge for 2400 copies would then be calculatedas $124.00 (i.e., the $100 monthly fee plus 1000 copies at $0.02/copyand 400 copies at $0.01/copy).

As indicated in FIG. 7B, for each product in Use Plan Details listapplet 760, a respective set of one or more pricing records may bedefined for the product and displayed in Pricing list applet 770. Foreach pricing record, the following fields may be defined: (1) the nameand type of the measurement to be used to calculate the Use chargebilled amount (“Measurement Type”), (2) an applicable quantity rangeover which the record is valid (the range is determined by the values inthe “From” and “To” fields), (3) a unit price to be charged (“Amount”),(4) the unit used to compute the total amount for that record (“Units”),and (5) a “Rollback” flag to indicate whether the value in the Amountfield of this record should be used for all previous ranges of quantityif the usage falls within the range specified for the record (thisfeature may be used to support incentive pricing). Various types of unitmay be defined such as quantity (or count), time (e.g., days, hours,minutes), and so on. A “Counter Type” field may be provided to identifywhether the measurement readings are incremental or absolute.

The Use pricing may define multiple measurements for a given product inthe same Use plan (e.g., if the product has more than one measurementthat can be covered by the Use plan). The Use pricing may also bedefined to cover rebates, discounts, and other adjustments, which may bebased on usage levels.

The Use charge billed amount for an agreement line item is determinedbased on the Use plan selected for the agreement line item, each assetin the agreement line item covered by the Use plan, and the reading foreach measurement of each covered asset. The Use plan may cover multipleproducts, and the specific Use pricing to be used for each covered assetin the agreement line item is the one for the product of which the asseta specific instance. For example, if the Use plan includes Use pricingfor a printer, a bard disk, and a computer, then the Use pricing for theprinter is used for a printer asset.

To determine the Use charge billed amount, the use quantity is firstdetermined. This may be achieved by first determining the reading on thelast invoice for the asset (or if no prior invoice, then the readingthat is nearest to the value of the “Use Start” field). The last readingfor the asset closest to the “Invoice Timing” date is next determined.The use quantity is then the difference between these two readings. Ifno reading is available for any given time period, then the usage duringthe time period may be estimated and used in place of an actual readingto compute an estimated Use charge billed amount. The estimated usagemay be an average or estimated reading, which may be determined fromN_(R) prior readings.

Each reading for a measurement corresponds to a usage amount for theasset, and the sum of all readings covering the current invoicing periodmay be invoiced. The aggregate reading for each measurement may then beused to determine the Use charge billed amount for this measurement.Depending on the Use pricing defined for the measurement, one record ormultiple records in Pricing list applet 770 may be consulted todetermine the Use charge billed amount, as shown by the above examplesfor the copier.

An invoice line item is generated for credits/charges if the “AdjustInvoice” field for an agreement line item is a non-zero value. Theinvoice engine transfers the value in the “Adjust Invoice” field to thecurrent invoice, along with the reason entered in the “Adjust Reason”field. Both fields for the agreement line item are then cleared afterthese entries are included in the invoice.

FIG. 8 shows an embodiment of a screen 800 that may be used to displayinvoices automatically generated for an agreement and to enable anend-user to interactively generate an invoice for one or more selectedagreement line items. Screen 800 includes Agreement form applet 420,Line Items list applet 460, and an Invoices list applet 870 that may beinvoked by selecting an “Invoices” choice in list box 454. Agreementform applet 420 and Line Items list applet 460 are described above inFIG. 4B.

Invoices list applet 870 displays the invoice line items for theselected agreement using a list table. Each data row in the list tablecorresponds to a record for one invoice line item. The list tableincludes columns for a number of fields of the invoice line items. Table4 lists various fields that may be defined for the invoice and thecorresponding descriptions. TABLE 4 Field Description Invoice # a numberassigned to the invoice Invoice Date the date the invoice was generatedInvoice Amount total amount due for the invoice Payments total paymentreceived for the invoice Due Amount amount still due for the invoice bythe due date Status status of the invoice (e.g., “Open” or “Closed”)Late indicate whether payment is late Agreement ID ID of the agreementfrom which the invoice was generated Line item ID ID of the agreementline item from which the invoice was generated Product the productdescription copied from the agreement line item Payment Terms pricelists and payment terms (may be copied from the agreement) Bill Tocontact to which the invoice is addressed (may be copied from theagreement)

An end-user may automatically create invoices and may further manuallyadd, delete, or modify the invoice records displayed in Invoices listapplet 870. In an embodiment, the “Invoice #” field in Invoices listapplet 870 may be used to (“drill down”) invoke the Invoice form applet,which may be used to view and edit details of the selected invoice lineitem.

FIG. 9 is a block diagram of an embodiment of a computer system 900 thatmay be used to implement the host server and client computers in FIG. 1.As shown in FIG. 9, system 900 includes a bus 908 that interconnectsmajor subsystems such as one or more processors 910, a memory subsystem912, a data storage subsystem 914, an input device interface 916, anoutput device interface 918, and a network interface 920.

Bus 908 provides a means for allowing various components and subsystemsof system 900 to communicate with each other. Many of the subsystems andcomponents of system 900 need not be at the same physical location butmay be distributed at various locations throughout a communicationnetwork. Although bus 908 is shown in FIG. 9 as a single bus, alternatedesigns for bus 908 may include multiple busses.

Processor(s) 910 perform many of the processing functions for system 900and communicate with a number of peripheral devices via bus 908. Memorysubsystem 912 and data storage subsystem 914 store the program codes anddata that implement various aspects of the invention and further providethe functionality of system 900. These program codes and data are thenprovided to memory subsystem 912 and the codes are executed byprocessor(s) 910. In a distributed environment, the program codes anddata may be stored on a number of computer systems and used by theprocessors of these systems.

Memory subsystem 912 typically includes a number of memories including arandom access memory (RAM) 932 and a read only memory (ROM) 934. RAM 932is typically used to store codes and data during program execution andROM 934 is typically used to store fixed codes and data.

Data storage subsystem 914 provides persistent (non-volatile) storagefor program codes and data, and may include a hard disk drive 942, afloppy disk drive 944, and other storage devices 946 such as a compactdigital read only memory (CD-ROM) drive, an optical drive, and removablemedia cartridge disk drive. Each of the storage devices may beassociated with removable media (e.g., floppy disks, CD-ROMs,cartridges). One or more of the storage devices may be located at remotelocations and coupled to system 900 via communication network 922.

Input device interface 916 provides interface with various input devicessuch as a keyboard 952, a pointing device 954 (e.g., a mouse, atrackball, a touch pad, a graphics tablet, a scanner, or a touchscreen), and other input device(s) 956. In general, the term “inputdevice” is intended to include all possible types of devices and ways toinput information into system 900.

Output device interface 918 provides an interface with various outputdevices such as a display 962 and other output device(s) 964. Display962 may be a cathode ray tube (CRT), a flat-panel device such as aliquid crystal display (LCD), or some other visual devices. In general,the term “output device” is intended to include all possible types ofdevices and ways to output information from system 900 to a human or toanother machine or computer systems.

Network interface 920 provides an interface with outside networksincluding communication network 922. Through network interface 920,system 900 is able to communicate with other computer systems coupled tonetwork 922. Network interface 920 may provide a wireline or wirelessinterface to network 922.

Many other devices or subsystems (not shown) may also be coupled tosystem 900. In addition, it is not necessary for all of the devicesshown in FIG. 9 to be present to practice the invention. Furthermore,the devices and subsystems may be interconnected in configurationsdifferent from that shown in FIG. 9. The operation of a computer systemsuch as that shown in FIG. 9 is readily known in the art and notdescribed in detail herein. The source codes to implement variousembodiments of the invention may be operatively disposed in memorysubsystem 912 or stored on storage media such as a hard disk, a floppydisk, or a CD-ROM that is operative with a CD-ROM player, or some othermedia.

The contract management system described herein may be implemented usinga “thick-client” model whereby software modules for the contractmanagement system are installed on both the host server and clientcomputers. The contract management system described herein may also beimplemented using a “thin-client” model whereby software modules for thecontract management system are installed only on the host server, andthe client computers can access data and functionality from the hostserver via browsers executed on the client computers. The browser-basedthin-client model can provide various advantages over the thick-clientmodel including (1) ease of installation, since the software modules forthe thin-client model are typically only installed on the host serverand not on the client computers, (2) ease of maintenance, since upgradesand other maintenance tasks are performed only on the host server, (3)high level of connectivity, since any user with a browser and (web)access may be able to interact with the host server, and other benefits.

FIG. 1 shows a specific operating mode whereby the contract manager andthe invoicing engine are located at the host server. Other operatingmodes may also be supported and are within the scope of the invention.For example, some or all of the contract manager, the invoicing engine,and the associated data may be provided to a client computer, which maythen perform various functions described herein (e.g., automaticallygenerate invoices for agreements). Thus, the techniques described hereinmay be implemented in a “connected” mode (e.g., as shown in FIG. 1) or a“disconnected” mode wherein a client computer may be able to performvarious functions, and the data (e.g., invoices) may thereafter besynchronized during a subsequent connection with the host server.

Headings are included herein for reference and to aid in the locatingcertain sections. These heading are not intended to limit the scope ofthe concepts described therein under, and these concepts may haveapplicability in other sections throughout the entire specification.

The foregoing description of the specific embodiments is provided toenable any person skilled in the art to make or use the presentinvention. Various modifications to these embodiments will be readilyapparent to those skilled in the art, and the generic principles definedherein may be applied to other embodiments without the use of theinventive faculty. Thus, the present invention is not intended to belimited to the embodiments shown herein but is to be accorded the widestscope consistent with the principles and novel features disclosedherein, and as defined by the following claims.

1. In a computer system, a method to automatically generate invoices forcontracts, comprising: identifying one or more contracts for invoicing;for each identified contract, identifying one or more line items to beautomatically invoiced; for each contract line item to be automaticallyinvoiced, determining one or more billings for the contract line itembased on an invoice plan associated with the contract line item; andgenerating at least one invoice having a plurality of line items for aplurality of billings for the one or more identified contracts.
 2. Themethod of claim 1, wherein each invoice plan is definable to include arecurring charge (RC), the method further comprising: for each contractline item to be automatically invoiced, determining a first billing forrecurring charge if the invoice plan for the contract line item includesrecurring charge.
 3. The method of claim 2, wherein the first billingfor each contract line item having recurring charge is generated basedon an RC schedule associated with the contract line item.
 4. The methodof claim 1, wherein each invoice plan is definable to include anon-recurring charge (NRC), the method further comprising: for eachcontract line item to be automatically invoiced, determining a secondbilling for non-recurring charge if the invoice plan for the contractline item includes non-recurring charge.
 5. The method of claim 4,wherein the second billing for each contract line item havingnon-recurring charge is generated based on an NRC plan associated withthe contract line item.
 6. The method of claim 5, wherein the NRC planfor each contract line item having non-recurring charge is selected fromamong a plurality of predefined NRC plans.
 7. The method of claim 5,wherein the second billing for each contract line item havingnon-recurring charge is further generated based on an NRC scheduleassociated with the contract line item.
 8. The method of claim 1,wherein each invoice plan is definable to include a use charge, themethod further comprising: for each contract line item to beautomatically invoiced, determining a third billing for use charge ifthe invoice plan for the contract line item includes use charge.
 9. Themethod of claim 8, wherein the third billing for each contract line itemhaving use charge is generated based on a use plan associated with thecontract line item.
 10. The method of claim 9, wherein the use plan foreach contract line item having use charge is selected from among aplurality of predefined use plans.
 11. The method of claim 9, whereineach use plan defines one or more measurements to be used to determinethe third billing for the use charge under the use plan.
 12. The methodof claim 11, wherein each use plan further defines a pricing structureto be used for each measurement to determine the third billing.
 13. Themethod of claim 1, wherein each invoice plan is definable to includecredits and charges, the method further comprising: for each contractline item to be automatically invoiced, determining a fourth billing forcredits and charges if the invoice plan for the contract line itemincludes credits and charges.
 14. The method of claim 1, furthercomprising: adjusting a total billed amount for each contract line itemto be automatically invoiced based on an adjustment amount entered forthe contract line item.
 15. The method of claim 1, wherein each contractline item is associated with a respective invoicing schedule.
 16. Themethod of claim 15, wherein each invoicing schedule defines an invoicingperiod for the associated contract line item.
 17. The method of claim16, wherein each invoicing schedule further defines a date in eachinvoicing period when invoices are to be generated.
 18. The method ofclaim 1, wherein one invoice is generated for each account and includesone or more line items for billings due from the account.
 19. The methodof claim 1, wherein one invoice line item is generated for each billing.20. The method of claim 1, wherein each contract line item to beautomatically invoiced is identified by a set flag.
 21. In a computersystem, a method to automatically generate invoices for contracts,comprising: identifying one or more contracts for invoicing; identifyingone or more line items to be automatically invoiced for each identifiedcontract, wherein each contract line item to be automatically invoicedis associated with a particular invoice plan and a particular invoicingschedule, and wherein each invoice plan is definable to include one ormore billing types; for each contract line item to be automaticallyinvoiced, determining one or more billings for one or more billing typesincluded in the invoice plan for the contract line item; and generatingat least one invoice having a plurality of line items for a plurality ofbillings for the one or more identified contracts.
 22. The method ofclaim 21, wherein each invoice plan is definable to include a recurringcharge, a non-recurring charge, a use charge, credits and other charges,or a combination thereof.
 23. The method of claim 21, wherein eachcontract line item to be automatically invoiced is further associatedwith a particular invoicing schedule.
 24. A computer program product forinstantiating entitlements into contracts, comprising a computer-usablemedium having embodied therein computer-readable program codes for:identifying one or more contracts for invoicing; identifying one or moreline items to be automatically invoiced for each identified contract;determining one or more billings for each contract line item to beautomatically invoiced based on an invoice plan associated with thecontract line item; and generating at least one invoice having aplurality of line items for a plurality of billings for the one or moreidentified contracts.
 25. The computer program product of claim 24,wherein each invoice plan is definable to include one or more billingtypes, and wherein the computer-usable medium is further embodied withcomputer-readable program codes for determining one or more billings forone or more billing types included in the invoice plan for each contractline item to be automatically invoiced.
 26. A contract management systemcomprising: a contract manager including an invoice engine operative toreceive one or more contracts for invoicing, identify one or more lineitems to be automatically invoiced for each received contract, whereineach contract line item to be automatically invoiced is associated witha particular invoice plan and a particular invoicing schedule, andwherein each invoice plan is definable to include one or more billingtypes, for each contract line item to be automatically invoiced,determine one or more billings for one or more billing types included inthe invoice plan for the contract line item, and generate at least oneinvoice having a plurality of line items for a plurality of billings forthe one or more identified contracts; and a local storage operativelycoupled to the contract manager and configured to store the one or morereceived contracts and the at least one generated invoice.
 27. Thecontract management system of claim 26, wherein each invoice plan isdefinable to include a recurring charge, a non-recurring charge, a usecharge, credits and other charges, or a combination thereof.
 28. Acomputer program product to automatically generate invoices forcontracts, comprising: code for identifying one or more contracts forinvoicing; code for identifying one or more line items to beautomatically invoiced for each identified contract, wherein eachcontract line item to be automatically invoiced is associated with aparticular invoice plan and a particular invoicing schedule, and whereineach invoice plan is definable to include one or more billing types;code for determining one or more billings for one or more billing typesincluded in the invoice plan for each contract line item to beautomatically invoiced; code for generating at least one invoice havinga plurality of line items for a plurality of billings for the one ormore identified contracts; and a data storage medium configured to storethe codes.
 29. The computer program product of claim 28, wherein eachinvoice plan is definable to include a recurring charge, a non-recurringcharge, a use charge, credits, fees, rebates, other charges, or acombination thereof.